﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FinalFantasy6Randomizer
{
    class TreasureBox
    {
        public string Area { get; set; }
        public int Address { get; set; }
        public int XPos { get; set; }
        public int YPos { get; set; }
        public int ChestId { get; set; }
        public int TypeByte { get; set; }
        public ChestType ChestType
        {
            get { return (ChestType)(TypeByte & 0xFE); }
            set { TypeByte = ((byte)value & 0xFE) | (TypeByte & 0x01); }
        }
        public Item Value { get; set; }
    }

    class TreasureBoxes
    {
        public List<TreasureBox> AllTreasureBoxes { get; set; }
        private static readonly TreasureBoxes instance = new TreasureBoxes();

        private TreasureBoxes()
        {
            SetTreasureBoxes();
        }

        public static TreasureBoxes GetAllTreasureBoxes()
        {
            return instance;
        }

        public void Reset()
        {
            SetTreasureBoxes();
        }

        private void SetTreasureBoxes()
        {
            AllTreasureBoxes = new List<TreasureBox>
                        {
                            //Narshe, lower town (WoB)
                            new TreasureBox
                                {
                                    Area = "Narshe (WoB)",
                                    Address = 0x2d8634,
                                    XPos = 54,
                                    YPos = 8,
                                    ChestId = 1,
                                    TypeByte = 0x40,
                                    Value = Item.SprintShoes
                                },
                            //Narshe, all non-shop buildings except classroom (always)
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d8639,
                                    XPos = 55,
                                    YPos = 30,
                                    ChestId = 2,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d863e,
                                    XPos = 77,
                                    YPos = 9,
                                    ChestId = 3,
                                    TypeByte = 0x08,
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d8643,
                                    XPos = 78,
                                    YPos = 8,
                                    ChestId = 4,
                                    TypeByte = 0x40,
                                    Value = Item.HyperWrist
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d8648,
                                    XPos = 79,
                                    YPos = 8,
                                    ChestId = 5,
                                    TypeByte = 0x40,
                                    Value = Item.SneakRing
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d864d,
                                    XPos = 80,
                                    YPos = 8,
                                    ChestId = 6,
                                    TypeByte = 0x40,
                                    Value = Item.WallRing
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d8652,
                                    XPos = 78,
                                    YPos = 10,
                                    ChestId = 7,
                                    TypeByte = 0x40,
                                    Value = Item.ThiefKnife
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d8657,
                                    XPos = 79,
                                    YPos = 10,
                                    ChestId = 8,
                                    TypeByte = 0x40,
                                    Value = Item.Earrings
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d865c,
                                    XPos = 80,
                                    YPos = 12,
                                    ChestId = 9,
                                    TypeByte = 0x80,
                                    Value = (Item)50
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d8661,
                                    XPos = 105,
                                    YPos = 14,
                                    ChestId = 10,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            //Narshe, caves, before checkpoint / checkpoint / behind Arvis' house (WoR)
                            new TreasureBox
                                {
                                    Area = "Narshe (WoR)",
                                    Address = 0x2d8666,
                                    XPos = 65,
                                    YPos = 28,
                                    ChestId = 11,
                                    TypeByte = 0x40,
                                    Value = Item.PodBracelet
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe (WoR)",
                                    Address = 0x2d866b,
                                    XPos = 52,
                                    YPos = 33,
                                    ChestId = 12,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            //Narshe, moogle cave (WoR)
                            new TreasureBox
                                {
                                    Area = "Narshe (WoR)",
                                    Address = 0x2d8670,
                                    XPos = 98,
                                    YPos = 53,
                                    ChestId = 13,
                                    TypeByte = 0x40,
                                    Value = Item.Ribbon
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe (WoR)",
                                    Address = 0x2d8675,
                                    XPos = 121,
                                    YPos = 45,
                                    ChestId = 207,
                                    TypeByte = 0x40,
                                    Value = Item.MoogleCharm
                                },
                            //Narshe, cave behind Arvis' house (WoB)
                            new TreasureBox
                                {
                                    Area = "Narshe (WoB)",
                                    Address = 0x2d867a,
                                    XPos = 65,
                                    YPos = 28,
                                    ChestId = 11,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe (WoB)",
                                    Address = 0x2d867f,
                                    XPos = 52,
                                    YPos = 33,
                                    ChestId = 12,
                                    TypeByte = 0x40,
                                    Value = Item.SleepingBag
                                },
                            //Narshe, moogle cave (WoB)
                            new TreasureBox
                                {
                                    Area = "Narshe (WoB)",
                                    Address = 0x2d8684,
                                    XPos = 98,
                                    YPos = 53,
                                    ChestId = 13,
                                    TypeByte = 0x40,
                                    Value = Item.RuneEdge
                                },
                            //Figaro Castle, miscellaneous rooms (always)
                            new TreasureBox
                                {
                                    Area = "Figaro Castle",
                                    Address = 0x2d8689,
                                    XPos = 43,
                                    YPos = 12,
                                    ChestId = 14,
                                    TypeByte = 0x40,
                                    Value = Item.Tonic
                                },
                            new TreasureBox
                                {
                                    Area = "Figaro Castle",
                                    Address = 0x2d868e,
                                    XPos = 44,
                                    YPos = 12,
                                    ChestId = 15,
                                    TypeByte = 0x40,
                                    Value = Item.Antidote
                                },
                            new TreasureBox
                                {
                                    Area = "Figaro Castle",
                                    Address = 0x2d8693,
                                    XPos = 11,
                                    YPos = 12,
                                    ChestId = 16,
                                    TypeByte = 0x40,
                                    Value = Item.Soft
                                },
                            new TreasureBox
                                {
                                    Area = "Figaro Castle",
                                    Address = 0x2d8698,
                                    XPos = 120,
                                    YPos = 11,
                                    ChestId = 17,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            //Figaro Castle, lower sub-basement
                            new TreasureBox
                                {
                                    Area = "Figaro Castle",
                                    Address = 0x2d869d,
                                    XPos = 80,
                                    YPos = 14,
                                    ChestId = 150,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            new TreasureBox
                                {
                                    Area = "Figaro Castle",
                                    Address = 0x2d86a2,
                                    XPos = 82,
                                    YPos = 14,
                                    ChestId = 151,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "Figaro Castle",
                                    Address = 0x2d86a7,
                                    XPos = 86,
                                    YPos = 14,
                                    ChestId = 152,
                                    TypeByte = 0x40,
                                    Value = Item.GravityRod
                                },
                            new TreasureBox
                                {
                                    Area = "Figaro Castle",
                                    Address = 0x2d86ac,
                                    XPos = 88,
                                    YPos = 14,
                                    ChestId = 153,
                                    TypeByte = 0x40,
                                    Value = Item.CrystalHelm
                                },
                            //Figaro Castle, treasury
                            new TreasureBox
                                {
                                    Area = "Figaro Castle",
                                    Address = 0x2d86b1,
                                    XPos = 68,
                                    YPos = 10,
                                    ChestId = 155,
                                    TypeByte = 0x40,
                                    Value = Item.SoulSabre
                                },
                            //Figaro Castle, NW treasure room in basement
                            new TreasureBox
                                {
                                    Area = "Figaro Castle",
                                    Address = 0x2d86b6,
                                    XPos = 3,
                                    YPos = 53,
                                    ChestId = 154,
                                    TypeByte = 0x40,
                                    Value = Item.RegalCrown
                                },
                            //Cave to South Figaro, main cave / short tunnel / east entrance (WoR)
                            new TreasureBox
                                {
                                    Area = "Figaro Cave (WoR)",
                                    Address = 0x2d86bb,
                                    XPos = 3,
                                    YPos = 18,
                                    ChestId = 18,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "Figaro Cave (WoR)",
                                    Address = 0x2d86c0,
                                    XPos = 33,
                                    YPos = 23,
                                    ChestId = 97,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            //Cave to South Figaro, main cave / short tunnel / east exit (WoB post-Celes)
                            new TreasureBox
                                {
                                    Area = "Figaro Cave (WoB post-Celes)",
                                    Address = 0x2d86c5,
                                    XPos = 3,
                                    YPos = 18,
                                    ChestId = 18,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "Figaro Cave (WoB post-Celes)",
                                    Address = 0x2d86ca,
                                    XPos = 33,
                                    YPos = 23,
                                    ChestId = 97,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            //Cave to South Figaro, recovery spring / up NW stairs (WoB post-Celes)
                            new TreasureBox
                                {
                                    Area = "Figaro Cave (WoB post-Celes)",
                                    Address = 0x2d86cf,
                                    XPos = 52,
                                    YPos = 14,
                                    ChestId = 19,
                                    TypeByte = 0x40,
                                    Value = Item.ThunderRod
                                },
                            //Cave to South Figaro, main cave / short tunnel / east exit (WoB pre-Celes)
                            new TreasureBox
                                {
                                    Area = "Figaro Cave (WoB pre-Celes)",
                                    Address = 0x2d86d4,
                                    XPos = 3,
                                    YPos = 18,
                                    ChestId = 18,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            new TreasureBox
                                {
                                    Area = "Figaro Cave (WoB pre-Celes)",
                                    Address = 0x2d86d9,
                                    XPos = 33,
                                    YPos = 23,
                                    ChestId = 97,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            //Cave to South Figaro, recovery spring / up NW stairs (WoB, pre-Celes)
                            new TreasureBox
                                {
                                    Area = "Figaro Cave (WoB pre-Celes)",
                                    Address = 0x2d86de,
                                    XPos = 52,
                                    YPos = 14,
                                    ChestId = 19,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            //South Figaro, outdoors (WoR)
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoR)",
                                    Address = 0x2d86e3,
                                    XPos = 22,
                                    YPos = 18,
                                    ChestId = 20,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoR)",
                                    Address = 0x2d86e8,
                                    XPos = 32,
                                    YPos = 16,
                                    ChestId = 21,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoR)",
                                    Address = 0x2d86ed,
                                    XPos = 15,
                                    YPos = 45,
                                    ChestId = 22,
                                    TypeByte = 0x40,
                                    Value = Item.Tent
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoR)",
                                    Address = 0x2d86f2,
                                    XPos = 15,
                                    YPos = 47,
                                    ChestId = 23,
                                    TypeByte = 0x40,
                                    Value = Item.Remedy
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoR)",
                                    Address = 0x2d86f7,
                                    XPos = 6,
                                    YPos = 31,
                                    ChestId = 24,
                                    TypeByte = 0x40,
                                    Value = Item.Revivify
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoR)",
                                    Address = 0x2d86fc,
                                    XPos = 14,
                                    YPos = 28,
                                    ChestId = 25,
                                    TypeByte = 0x40,
                                    Value = Item.Tent
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoR)",
                                    Address = 0x2d8701,
                                    XPos = 2,
                                    YPos = 43,
                                    ChestId = 230,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoR)",
                                    Address = 0x2d8706,
                                    XPos = 11,
                                    YPos = 23,
                                    ChestId = 231,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            //South Figaro, outdoors (WoB)
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoB)",
                                    Address = 0x2d870b,
                                    XPos = 22,
                                    YPos = 18,
                                    ChestId = 20,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoB)",
                                    Address = 0x2d8710,
                                    XPos = 32,
                                    YPos = 16,
                                    ChestId = 21,
                                    TypeByte = 0x40,
                                    Value = Item.Tonic
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoB)",
                                    Address = 0x2d8715,
                                    XPos = 15,
                                    YPos = 45,
                                    ChestId = 22,
                                    TypeByte = 0x40,
                                    Value = Item.Antidote
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoB)",
                                    Address = 0x2d871a,
                                    XPos = 15,
                                    YPos = 47,
                                    ChestId = 23,
                                    TypeByte = 0x40,
                                    Value = Item.Eyedrop
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoB)",
                                    Address = 0x2d871f,
                                    XPos = 6,
                                    YPos = 31,
                                    ChestId = 24,
                                    TypeByte = 0x40,
                                    Value = Item.Tonic
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoB)",
                                    Address = 0x2d8724,
                                    XPos = 14,
                                    YPos = 28,
                                    ChestId = 25,
                                    TypeByte = 0x40,
                                    Value = Item.GreenCherry
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoB)",
                                    Address = 0x2d8729,
                                    XPos = 2,
                                    YPos = 43,
                                    ChestId = 230,
                                    TypeByte = 0x40,
                                    Value = Item.Soft
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro (WoB)",
                                    Address = 0x2d872e,
                                    XPos = 11,
                                    YPos = 23,
                                    ChestId = 231,
                                    TypeByte = 0x40,
                                    Value = Item.WarpStone
                                },
                            //South Figaro, clock room and Duncan's basement (always)
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d8733,
                                    XPos = 7,
                                    YPos = 52,
                                    ChestId = 26,
                                    TypeByte = 0x80,
                                    Value = (Item)5
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d8738,
                                    XPos = 21,
                                    YPos = 56,
                                    ChestId = 27,
                                    TypeByte = 0x80,
                                    Value = (Item)15
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d873d,
                                    XPos = 12,
                                    YPos = 55,
                                    ChestId = 28,
                                    TypeByte = 0x80,
                                    Value = (Item)10
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d8742,
                                    XPos = 22,
                                    YPos = 55,
                                    ChestId = 29,
                                    TypeByte = 0x08,
                                },
                            //South Figaro, Duncan's house / old man's house / tunnel ends (always)
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d8747,
                                    XPos = 15,
                                    YPos = 10,
                                    ChestId = 30,
                                    TypeByte = 0x40,
                                    Value = Item.Tonic
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d874c,
                                    XPos = 7,
                                    YPos = 31,
                                    ChestId = 31,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            //South Figaro, escape tunnel (always)
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d8751,
                                    XPos = 32,
                                    YPos = 42,
                                    ChestId = 32,
                                    TypeByte = 0x40,
                                    Value = Item.IronArmor
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d8756,
                                    XPos = 33,
                                    YPos = 56,
                                    ChestId = 33,
                                    TypeByte = 0x40,
                                    Value = Item.Earrings
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d875b,
                                    XPos = 47,
                                    YPos = 33,
                                    ChestId = 34,
                                    TypeByte = 0x40,
                                    Value = Item.RegalCutlass
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d8760,
                                    XPos = 48,
                                    YPos = 33,
                                    ChestId = 35,
                                    TypeByte = 0x40,
                                    Value = Item.HeavyShld
                                },
                            //South Figaro, hidden "castle-like" sub-basements (always)
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d8765,
                                    XPos = 110,
                                    YPos = 49,
                                    ChestId = 252,
                                    TypeByte = 0x40,
                                    Value = Item.HyperWrist
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d876a,
                                    XPos = 101,
                                    YPos = 39,
                                    ChestId = 253,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d876f,
                                    XPos = 101,
                                    YPos = 43,
                                    ChestId = 254,
                                    TypeByte = 0x40,
                                    Value = Item.Ribbon
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d8774,
                                    XPos = 92,
                                    YPos = 53,
                                    ChestId = 255,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            new TreasureBox
                                {
                                    Area = "South Figaro",
                                    Address = 0x2d8779,
                                    XPos = 120,
                                    YPos = 53,
                                    ChestId = 0,
                                    TypeByte = 0x41,
                                    Value = Item.RunningShoes
                                },
                            //Cave to South Figaro, turtle pond / up NW stairs (WoR)
                            new TreasureBox
                                {
                                    Area = "Figaro Cave (WoR)",
                                    Address = 0x2d877e,
                                    XPos = 52,
                                    YPos = 14,
                                    ChestId = 19,
                                    TypeByte = 0x40,
                                    Value = Item.HeroRing
                                },
                            //Sabin's house, indoors
                            new TreasureBox
                                {
                                    Area = "Sabin's House",
                                    Address = 0x2d8783,
                                    XPos = 74,
                                    YPos = 27,
                                    ChestId = 36,
                                    TypeByte = 0x40,
                                    Value = Item.Tonic
                                },
                            //Mt. Kolts, lower cliffs, without clouds
                            new TreasureBox
                                {
                                    Area = "Mt. Kolts",
                                    Address = 0x2d8788,
                                    XPos = 27,
                                    YPos = 14,
                                    ChestId = 37,
                                    TypeByte = 0x40,
                                    Value = Item.Tent
                                },
                            new TreasureBox
                                {
                                    Area = "Mt. Kolts",
                                    Address = 0x2d878d,
                                    XPos = 28,
                                    YPos = 27,
                                    ChestId = 38,
                                    TypeByte = 0x40,
                                    Value = Item.Guardian
                                },
                            //Mt. Kolts, lower cliffs, with clouds
                            new TreasureBox
                                {
                                    Area = "Mt. Kolts",
                                    Address = 0x2d8792,
                                    XPos = 27,
                                    YPos = 14,
                                    ChestId = 37,
                                    TypeByte = 0x40,
                                    Value = Item.Tent
                                },
                            new TreasureBox
                                {
                                    Area = "Mt. Kolts",
                                    Address = 0x2d8797,
                                    XPos = 28,
                                    YPos = 27,
                                    ChestId = 38,
                                    TypeByte = 0x40,
                                    Value = Item.Guardian
                                },
                            //Mt. Kolts, all caves except save point (inc. Locke & Rachel flashback)
                            new TreasureBox
                                {
                                    Area = "Mt. Kolts",
                                    Address = 0x2d879c,
                                    XPos = 30,
                                    YPos = 33,
                                    ChestId = 39,
                                    TypeByte = 0x40,
                                    Value = Item.AtlasArmlet
                                },
                            new TreasureBox
                                {
                                    Area = "Mt. Kolts",
                                    Address = 0x2d87a1,
                                    XPos = 8,
                                    YPos = 52,
                                    ChestId = 40,
                                    TypeByte = 0x40,
                                    Value = Item.Tent
                                },
                            //Narshe, Beginner's House west classroom (always)
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d87a6,
                                    XPos = 54,
                                    YPos = 28,
                                    ChestId = 140,
                                    TypeByte = 0x40,
                                    Value = Item.Tonic
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d87ab,
                                    XPos = 54,
                                    YPos = 28,
                                    ChestId = 139,
                                    TypeByte = 0x40,
                                    Value = Item.SleepingBag
                                },
                            //Narshe, Beginner's House east classroom (always)
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d87b0,
                                    XPos = 54,
                                    YPos = 28,
                                    ChestId = 138,
                                    TypeByte = 0x20,
                                    Value = (Item)0x00
                                },
                            new TreasureBox
                                {
                                    Area = "Narshe",
                                    Address = 0x2d87b5,
                                    XPos = 61,
                                    YPos = 28,
                                    ChestId = 141,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            //Returners' Hideout, main cave
                            new TreasureBox
                                {
                                    Area = "Returners' Hideout",
                                    Address = 0x2d87ba,
                                    XPos = 26,
                                    YPos = 21,
                                    ChestId = 41,
                                    TypeByte = 0x40,
                                    Value = Item.GreenCherry
                                },
                            //Returners' Hideout, save point / bedroom / storeroom
                            new TreasureBox
                                {
                                    Area = "Returners' Hideout",
                                    Address = 0x2d87bf,
                                    XPos = 28,
                                    YPos = 49,
                                    ChestId = 42,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            new TreasureBox
                                {
                                    Area = "Returners' Hideout",
                                    Address = 0x2d87c4,
                                    XPos = 42,
                                    YPos = 9,
                                    ChestId = 43,
                                    TypeByte = 0x40,
                                    Value = Item.Antidote
                                },
                            new TreasureBox
                                {
                                    Area = "Returners' Hideout",
                                    Address = 0x2d87c9,
                                    XPos = 43,
                                    YPos = 9,
                                    ChestId = 44,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            new TreasureBox
                                {
                                    Area = "Returners' Hideout",
                                    Address = 0x2d87ce,
                                    XPos = 43,
                                    YPos = 11,
                                    ChestId = 45,
                                    TypeByte = 0x40,
                                    Value = Item.TrueKnight
                                },
                            new TreasureBox
                                {
                                    Area = "Returners' Hideout",
                                    Address = 0x2d87d3,
                                    XPos = 43,
                                    YPos = 13,
                                    ChestId = 46,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            new TreasureBox
                                {
                                    Area = "Returners' Hideout",
                                    Address = 0x2d87d8,
                                    XPos = 45,
                                    YPos = 13,
                                    ChestId = 47,
                                    TypeByte = 0x40,
                                    Value = Item.AirLancet
                                },
                            new TreasureBox
                                {
                                    Area = "Returners' Hideout",
                                    Address = 0x2d87dd,
                                    XPos = 55,
                                    YPos = 48,
                                    ChestId = 48,
                                    TypeByte = 0x40,
                                    Value = Item.Potion
                                },
                            new TreasureBox
                                {
                                    Area = "Returners' Hideout",
                                    Address = 0x2d87e2,
                                    XPos = 60,
                                    YPos = 19,
                                    ChestId = 49,
                                    TypeByte = 0x40,
                                    Value = Item.WhiteCape
                                },
                            //Imperial Camp (before Doma is poisoned)
                            new TreasureBox
                                {
                                    Area = "Imperial Camp",
                                    Address = 0x2d87e7,
                                    XPos = 45,
                                    YPos = 5,
                                    ChestId = 50,
                                    TypeByte = 0x40,
                                    Value = Item.StarPendant
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Camp",
                                    Address = 0x2d87ec,
                                    XPos = 15,
                                    YPos = 8,
                                    ChestId = 210,
                                    TypeByte = 0x40,
                                    Value = Item.BarrierRing
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Camp",
                                    Address = 0x2d87f1,
                                    XPos = 19,
                                    YPos = 18,
                                    ChestId = 211,
                                    TypeByte = 0x40,
                                    Value = Item.MithrilGlove
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Camp",
                                    Address = 0x2d87f6,
                                    XPos = 17,
                                    YPos = 18,
                                    ChestId = 212,
                                    TypeByte = 0x20,
                                    Value = (Item)0x20
                                },
                            //Doma Castle, all rooms except Cyan's (always)
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d87fb,
                                    XPos = 52,
                                    YPos = 47,
                                    ChestId = 51,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d8800,
                                    XPos = 55,
                                    YPos = 5,
                                    ChestId = 52,
                                    TypeByte = 0x40,
                                    Value = Item.Remedy
                                },
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d8805,
                                    XPos = 28,
                                    YPos = 49,
                                    ChestId = 53,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d880a,
                                    XPos = 31,
                                    YPos = 50,
                                    ChestId = 54,
                                    TypeByte = 0x40,
                                    Value = Item.Beads
                                },
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d880f,
                                    XPos = 33,
                                    YPos = 34,
                                    ChestId = 96,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d8814,
                                    XPos = 56,
                                    YPos = 47,
                                    ChestId = 179,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            //Doma Castle, Cyan's room (always)
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d8819,
                                    XPos = 33,
                                    YPos = 34,
                                    ChestId = 96,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            //Cyan's Dream, Doma Castle all rooms
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d881e,
                                    XPos = 52,
                                    YPos = 47,
                                    ChestId = 51,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d8823,
                                    XPos = 55,
                                    YPos = 5,
                                    ChestId = 52,
                                    TypeByte = 0x40,
                                    Value = Item.Remedy
                                },
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d8828,
                                    XPos = 28,
                                    YPos = 49,
                                    ChestId = 53,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d882d,
                                    XPos = 31,
                                    YPos = 50,
                                    ChestId = 54,
                                    TypeByte = 0x40,
                                    Value = Item.Beads
                                },
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d8832,
                                    XPos = 33,
                                    YPos = 34,
                                    ChestId = 96,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "Doma Castle",
                                    Address = 0x2d8837,
                                    XPos = 56,
                                    YPos = 47,
                                    ChestId = 179,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            //Cyan's Dream, Phantom Train first dining car
                            new TreasureBox
                                {
                                    Area = "Cyan's Dream",
                                    Address = 0x2d883c,
                                    XPos = 25,
                                    YPos = 5,
                                    ChestId = 188,
                                    TypeByte = 0x40,
                                    Value = Item.GenjiGlove
                                },
                            new TreasureBox
                                {
                                    Area = "Cyan's Dream",
                                    Address = 0x2d8841,
                                    XPos = 14,
                                    YPos = 5,
                                    ChestId = 189,
                                    TypeByte = 0x40,
                                    Value = Item.FlameShld
                                },
                            //Phantom Train, caboose inner room and engine room (inc. Cyan's Dream)
                            new TreasureBox
                                {
                                    Area = "Phantom Train",
                                    Address = 0x2d8846,
                                    XPos = 20,
                                    YPos = 7,
                                    ChestId = 67,
                                    TypeByte = 0x40,
                                    Value = Item.Tent
                                },
                            //Phantom Train, dining car
                            new TreasureBox
                                {
                                    Area = "Phantom Train",
                                    Address = 0x2d884b,
                                    XPos = 5,
                                    YPos = 5,
                                    ChestId = 55,
                                    TypeByte = 0x40,
                                    Value = Item.Earrings
                                },
                            //Mobliz, cave under soldier's house (only after first Phunbaba fights)
                            new TreasureBox
                                {
                                    Area = "Mobliz",
                                    Address = 0x2d8850,
                                    XPos = 34,
                                    YPos = 49,
                                    ChestId = 167,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            //Phantom Train, suite rooms and save point car (inc. Cyan's Dream)
                            new TreasureBox
                                {
                                    Area = "Mobliz",
                                    Address = 0x2d8855,
                                    XPos = 20,
                                    YPos = 7,
                                    ChestId = 56,
                                    TypeByte = 0x40,
                                    Value = Item.Tent
                                },
                            new TreasureBox
                                {
                                    Area = "Mobliz",
                                    Address = 0x2d885a,
                                    XPos = 21,
                                    YPos = 7,
                                    ChestId = 57,
                                    TypeByte = 0x40,
                                    Value = Item.FairyRing
                                },
                            new TreasureBox
                                {
                                    Area = "Mobliz",
                                    Address = 0x2d885f,
                                    XPos = 25,
                                    YPos = 24,
                                    ChestId = 58,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            new TreasureBox
                                {
                                    Area = "Mobliz",
                                    Address = 0x2d8864,
                                    XPos = 24,
                                    YPos = 24,
                                    ChestId = 59,
                                    TypeByte = 0x40,
                                    Value = Item.SniperSight
                                },
                            new TreasureBox
                                {
                                    Area = "Mobliz",
                                    Address = 0x2d8869,
                                    XPos = 23,
                                    YPos = 24,
                                    ChestId = 60,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            new TreasureBox
                                {
                                    Area = "Mobliz",
                                    Address = 0x2d886e,
                                    XPos = 22,
                                    YPos = 24,
                                    ChestId = 243,
                                    TypeByte = 0x20,
                                    Value = (Item)0x22
                                },
                            //Mobliz, outdoors (WoR)
                            new TreasureBox
                                {
                                    Area = "Mobliz (WoR)",
                                    Address = 0x2d8873,
                                    XPos = 9,
                                    YPos = 17,
                                    ChestId = 251,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            //Mobliz, mailman's house, upstairs only (always)
                            new TreasureBox
                                {
                                    Area = "Mobliz",
                                    Address = 0x2d8878,
                                    XPos = 51,
                                    YPos = 12,
                                    ChestId = 61,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            //Nikeah, inn (always)
                            new TreasureBox
                                {
                                    Area = "Nikeah",
                                    Address = 0x2d887d,
                                    XPos = 57,
                                    YPos = 37,
                                    ChestId = 62,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            //Serpent Trench, caves
                            new TreasureBox
                                {
                                    Area = "Serpent Trench",
                                    Address = 0x2d8882,
                                    XPos = 52,
                                    YPos = 11,
                                    ChestId = 63,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "Serpent Trench",
                                    Address = 0x2d8887,
                                    XPos = 8,
                                    YPos = 13,
                                    ChestId = 64,
                                    TypeByte = 0x40,
                                    Value = Item.GreenBeret
                                },
                            //Mt. Zozo, small cliffside area
                            new TreasureBox
                                {
                                    Area = "Mt. Zozo",
                                    Address = 0x2d888c,
                                    XPos = 9,
                                    YPos = 7,
                                    ChestId = 166,
                                    TypeByte = 0x40,
                                    Value = Item.GoldHairpin
                                },
                            //Mt. Zozo, all caves except Cyan's
                            new TreasureBox
                                {
                                    Area = "Mt. Zozo",
                                    Address = 0x2d8891,
                                    XPos = 19,
                                    YPos = 30,
                                    ChestId = 162,
                                    TypeByte = 0x40,
                                    Value = Item.RedCap
                                },
                            new TreasureBox
                                {
                                    Area = "Mt. Zozo",
                                    Address = 0x2d8896,
                                    XPos = 11,
                                    YPos = 21,
                                    ChestId = 163,
                                    TypeByte = 0x40,
                                    Value = Item.IceShld
                                },
                            new TreasureBox
                                {
                                    Area = "Mt. Zozo",
                                    Address = 0x2d889b,
                                    XPos = 13,
                                    YPos = 16,
                                    ChestId = 164,
                                    TypeByte = 0x40,
                                    Value = Item.AegisShld
                                },
                            new TreasureBox
                                {
                                    Area = "Mt. Zozo",
                                    Address = 0x2d88a0,
                                    XPos = 3,
                                    YPos = 51,
                                    ChestId = 165,
                                    TypeByte = 0x40,
                                    Value = Item.ThunderShld
                                },
                            //Mt. Zozo, Cyan's cave
                            new TreasureBox
                                {
                                    Area = "Mt. Zozo",
                                    Address = 0x2d88a5,
                                    XPos = 42,
                                    YPos = 54,
                                    ChestId = 238,
                                    TypeByte = 0x08,
                                },
                            //House at Dragon's Neck, indoors
                            new TreasureBox
                                {
                                    Area = "House at Dragon's Neck",
                                    Address = 0x2d88aa,
                                    XPos = 115,
                                    YPos = 34,
                                    ChestId = 229,
                                    TypeByte = 0x40,
                                    Value = Item.HeroRing
                                },
                            //Kohlingen, crazy man's house, both floors (always)
                            new TreasureBox
                                {
                                    Area = "Kohlingen",
                                    Address = 0x2d88af,
                                    XPos = 37,
                                    YPos = 53,
                                    ChestId = 65,
                                    TypeByte = 0x40,
                                    Value = Item.GreenBeret
                                },
                            //Kohlingen, Rachel's house (always)
                            new TreasureBox
                                {
                                    Area = "Kohlingen",
                                    Address = 0x2d88b4,
                                    XPos = 42,
                                    YPos = 10,
                                    ChestId = 69,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            //Owzer's house, darkened basement rooms
                            new TreasureBox
                                {
                                    Area = "Owzer's House",
                                    Address = 0x2d88b9,
                                    XPos = 92,
                                    YPos = 58,
                                    ChestId = 213,
                                    TypeByte = 0x40,
                                    Value = Item.MoogleSuit
                                },
                            new TreasureBox
                                {
                                    Area = "Owzer's House",
                                    Address = 0x2d88be,
                                    XPos = 90,
                                    YPos = 47,
                                    ChestId = 2,
                                    TypeByte = 0x41,
                                    Value = Item.RelicRing
                                },
                            //Owzer's house, upper floor (always)
                            new TreasureBox
                                {
                                    Area = "Owzer's House",
                                    Address = 0x2d88c3,
                                    XPos = 125,
                                    YPos = 11,
                                    ChestId = 66,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            //Zozo, all rooms except tower top (always)
                            new TreasureBox
                                {
                                    Area = "Zozo",
                                    Address = 0x2d88c8,
                                    XPos = 111,
                                    YPos = 52,
                                    ChestId = 73,
                                    TypeByte = 0x40,
                                    Value = Item.Chainsaw
                                },
                            new TreasureBox
                                {
                                    Area = "Zozo",
                                    Address = 0x2d88cd,
                                    XPos = 66,
                                    YPos = 50,
                                    ChestId = 74,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            new TreasureBox
                                {
                                    Area = "Zozo",
                                    Address = 0x2d88d2,
                                    XPos = 83,
                                    YPos = 53,
                                    ChestId = 72,
                                    TypeByte = 0x40,
                                    Value = Item.Tonic
                                },
                            new TreasureBox
                                {
                                    Area = "Zozo",
                                    Address = 0x2d88d7,
                                    XPos = 11,
                                    YPos = 59,
                                    ChestId = 75,
                                    TypeByte = 0x40,
                                    Value = Item.ThiefGlove
                                },
                            new TreasureBox
                                {
                                    Area = "Zozo",
                                    Address = 0x2d88dc,
                                    XPos = 35,
                                    YPos = 11,
                                    ChestId = 76,
                                    TypeByte = 0x40,
                                    Value = Item.FireKnuckle
                                },
                            new TreasureBox
                                {
                                    Area = "Zozo",
                                    Address = 0x2d88e1,
                                    XPos = 104,
                                    YPos = 9,
                                    ChestId = 239,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            new TreasureBox
                                {
                                    Area = "Zozo",
                                    Address = 0x2d88e6,
                                    XPos = 105,
                                    YPos = 9,
                                    ChestId = 240,
                                    TypeByte = 0x40,
                                    Value = Item.Potion
                                },
                            //Zozo, room at tower top (always)
                            new TreasureBox
                                {
                                    Area = "Zozo",
                                    Address = 0x2d88eb,
                                    XPos = 72,
                                    YPos = 26,
                                    ChestId = 70,
                                    TypeByte = 0x40,
                                    Value = Item.RunningShoes
                                },
                            new TreasureBox
                                {
                                    Area = "Zozo",
                                    Address = 0x2d88f0,
                                    XPos = 92,
                                    YPos = 27,
                                    ChestId = 71,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            //Imperial Castle, most rooms (including Terra's flashback)
                            new TreasureBox
                                {
                                    Area = "Vector",
                                    Address = 0x2d88f5,
                                    XPos = 24,
                                    YPos = 48,
                                    ChestId = 77,
                                    TypeByte = 0x40,
                                    Value = Item.BackGuard
                                },
                            new TreasureBox
                                {
                                    Area = "Vector",
                                    Address = 0x2d88fa,
                                    XPos = 25,
                                    YPos = 48,
                                    ChestId = 78,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "Vector",
                                    Address = 0x2d88ff,
                                    XPos = 117,
                                    YPos = 12,
                                    ChestId = 79,
                                    TypeByte = 0x40,
                                    Value = Item.GaleHairpin
                                },
                            new TreasureBox
                                {
                                    Area = "Vector",
                                    Address = 0x2d8904,
                                    XPos = 100,
                                    YPos = 49,
                                    ChestId = 80,
                                    TypeByte = 0x40,
                                    Value = Item.Revivify
                                },
                            //Imperial Castle, western barracks
                            new TreasureBox
                                {
                                    Area = "Vector",
                                    Address = 0x2d8909,
                                    XPos = 42,
                                    YPos = 55,
                                    ChestId = 81,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            //Magitek Factory, first area (first visit / after subway ride)
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d890e,
                                    XPos = 3,
                                    YPos = 25,
                                    ChestId = 82,
                                    TypeByte = 0x40,
                                    Value = Item.FlameSabre
                                },
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d8913,
                                    XPos = 17,
                                    YPos = 27,
                                    ChestId = 83,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d8918,
                                    XPos = 7,
                                    YPos = 44,
                                    ChestId = 84,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d891d,
                                    XPos = 25,
                                    YPos = 52,
                                    ChestId = 85,
                                    TypeByte = 0x40,
                                    Value = Item.Remedy
                                },
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d8922,
                                    XPos = 14,
                                    YPos = 53,
                                    ChestId = 86,
                                    TypeByte = 0x40,
                                    Value = Item.GoldShld
                                },
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d8927,
                                    XPos = 25,
                                    YPos = 44,
                                    ChestId = 87,
                                    TypeByte = 0x40,
                                    Value = Item.ThunderBlade
                                },
                            //Magitek Factory, second area (only before subway ride)
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d892c,
                                    XPos = 5,
                                    YPos = 31,
                                    ChestId = 88,
                                    TypeByte = 0x40,
                                    Value = Item.DragoonBoots
                                },
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d8931,
                                    XPos = 14,
                                    YPos = 55,
                                    ChestId = 89,
                                    TypeByte = 0x40,
                                    Value = Item.GoldHelmet
                                },
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d8936,
                                    XPos = 55,
                                    YPos = 34,
                                    ChestId = 90,
                                    TypeByte = 0x40,
                                    Value = Item.Blizzard
                                },
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d893b,
                                    XPos = 60,
                                    YPos = 33,
                                    ChestId = 91,
                                    TypeByte = 0x40,
                                    Value = Item.ZephyrCape
                                },
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d8940,
                                    XPos = 42,
                                    YPos = 46,
                                    ChestId = 92,
                                    TypeByte = 0x40,
                                    Value = Item.Tent
                                },
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d8945,
                                    XPos = 32,
                                    YPos = 57,
                                    ChestId = 93,
                                    TypeByte = 0x40,
                                    Value = Item.GoldArmor
                                },
                            //Magitek Research Facility, hallway with empty tubes
                            new TreasureBox
                                {
                                    Area = "Magitek Factory",
                                    Address = 0x2d894a,
                                    XPos = 8,
                                    YPos = 37,
                                    ChestId = 94,
                                    TypeByte = 0x40,
                                    Value = Item.BreakBlade
                                },
                            //Gogo's Lair, entrance / guarded bridges / below bridges
                            new TreasureBox
                                {
                                    Area = "Zone Eater",
                                    Address = 0x2d894f,
                                    XPos = 25,
                                    YPos = 31,
                                    ChestId = 208,
                                    TypeByte = 0x40,
                                    Value = Item.FakeMustache
                                },
                            new TreasureBox
                                {
                                    Area = "Zone Eater",
                                    Address = 0x2d8954,
                                    XPos = 40,
                                    YPos = 13,
                                    ChestId = 209,
                                    TypeByte = 0x40,
                                    Value = Item.RedJacket
                                },
                            new TreasureBox
                                {
                                    Area = "Zone Eater",
                                    Address = 0x2d8959,
                                    XPos = 35,
                                    YPos = 16,
                                    ChestId = 194,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            new TreasureBox
                                {
                                    Area = "Zone Eater",
                                    Address = 0x2d895e,
                                    XPos = 42,
                                    YPos = 32,
                                    ChestId = 236,
                                    TypeByte = 0x40,
                                    Value = Item.MagicalBrsh
                                },
                            new TreasureBox
                                {
                                    Area = "Zone Eater",
                                    Address = 0x2d8963,
                                    XPos = 43,
                                    YPos = 32,
                                    ChestId = 237,
                                    TypeByte = 0x40,
                                    Value = Item.GenjiArmor
                                },
                            //Gogo's Lair, moving ceiling room / chest jumping room
                            new TreasureBox
                                {
                                    Area = "Zone Eater",
                                    Address = 0x2d8968,
                                    XPos = 1,
                                    YPos = 45,
                                    ChestId = 228,
                                    TypeByte = 0x40,
                                    Value = Item.ThunderShld
                                },
                            new TreasureBox
                                {
                                    Area = "Zone Eater",
                                    Address = 0x2d896d,
                                    XPos = 46,
                                    YPos = 47,
                                    ChestId = 232,
                                    TypeByte = 0x40,
                                    Value = Item.ZephyrCape
                                },
                            new TreasureBox
                                {
                                    Area = "Zone Eater",
                                    Address = 0x2d8972,
                                    XPos = 41,
                                    YPos = 43,
                                    ChestId = 233,
                                    TypeByte = 0x40,
                                    Value = Item.HeroRing
                                },
                            new TreasureBox
                                {
                                    Area = "Zone Eater",
                                    Address = 0x2d8977,
                                    XPos = 27,
                                    YPos = 44,
                                    ChestId = 234,
                                    TypeByte = 0x40,
                                    Value = Item.TackStar
                                },
                            //Umaro's Cave, first cave and bridges cave
                            new TreasureBox
                                {
                                    Area = "Umaro's Cave",
                                    Address = 0x2d897c,
                                    XPos = 41,
                                    YPos = 58,
                                    ChestId = 169,
                                    TypeByte = 0x40,
                                    Value = Item.Gauntlet
                                },
                            //Umaro's Cave, cave north of first cave
                            new TreasureBox
                                {
                                    Area = "Umaro's Cave",
                                    Address = 0x2d8981,
                                    XPos = 14,
                                    YPos = 25,
                                    ChestId = 168,
                                    TypeByte = 0x40,
                                    Value = Item.XEther
                                },
                            new TreasureBox
                                {
                                    Area = "Umaro's Cave",
                                    Address = 0x2d8986,
                                    XPos = 13,
                                    YPos = 34,
                                    ChestId = 170,
                                    TypeByte = 0x20,
                                    Value = (Item)0x98
                                },
                            //Maranda, outdoors (always)
                            new TreasureBox
                                {
                                    Area = "Maranda",
                                    Address = 0x2d898b,
                                    XPos = 28,
                                    YPos = 20,
                                    ChestId = 244,
                                    TypeByte = 0x40,
                                    Value = Item.Remedy
                                },
                            new TreasureBox
                                {
                                    Area = "Maranda",
                                    Address = 0x2d8990,
                                    XPos = 2,
                                    YPos = 26,
                                    ChestId = 245,
                                    TypeByte = 0x40,
                                    Value = Item.Revivify
                                },
                            //Kefka's Tower, switched platform factory area
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8995,
                                    XPos = 89,
                                    YPos = 12,
                                    ChestId = 216,
                                    TypeByte = 0x40,
                                    Value = Item.Ribbon
                                },
                            //Kefka's Tower, catwalk in Inferno's room
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d899a,
                                    XPos = 38,
                                    YPos = 12,
                                    ChestId = 225,
                                    TypeByte = 0x40,
                                    Value = Item.NutkinSuit
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d899f,
                                    XPos = 49,
                                    YPos = 12,
                                    ChestId = 235,
                                    TypeByte = 0x40,
                                    Value = Item.Gauntlet
                                },
                            //Darill's Tomb, most upstairs rooms / Darill's grave
                            new TreasureBox
                                {
                                    Area = "Darill's Tomb",
                                    Address = 0x2d89a4,
                                    XPos = 43,
                                    YPos = 42,
                                    ChestId = 156,
                                    TypeByte = 0x40,
                                    Value = Item.GenjiHelmet
                                },
                            new TreasureBox
                                {
                                    Area = "Darill's Tomb",
                                    Address = 0x2d89a9,
                                    XPos = 9,
                                    YPos = 59,
                                    ChestId = 157,
                                    TypeByte = 0x40,
                                    Value = Item.CrystalMail
                                },
                            //Darill's Tomb, rooms with visible switches / downstairs rooms
                            new TreasureBox
                                {
                                    Area = "Darill's Tomb",
                                    Address = 0x2d89ae,
                                    XPos = 43,
                                    YPos = 60,
                                    ChestId = 158,
                                    TypeByte = 0x40,
                                    Value = Item.CzarinaGown
                                },
                            new TreasureBox
                                {
                                    Area = "Darill's Tomb",
                                    Address = 0x2d89b3,
                                    XPos = 55,
                                    YPos = 58,
                                    ChestId = 159,
                                    TypeByte = 0x40,
                                    Value = Item.ExpEgg
                                },
                            new TreasureBox
                                {
                                    Area = "Darill's Tomb",
                                    Address = 0x2d89b8,
                                    XPos = 124,
                                    YPos = 9,
                                    ChestId = 160,
                                    TypeByte = 0x40,
                                    Value = Item.ManEater
                                },
                            new TreasureBox
                                {
                                    Area = "Darill's Tomb",
                                    Address = 0x2d89bd,
                                    XPos = 120,
                                    YPos = 9,
                                    ChestId = 161,
                                    TypeByte = 0x20,
                                    Value = (Item)0x74
                                },
                            //Kefka's Tower, Fixed Dice room
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d89c2,
                                    XPos = 33,
                                    YPos = 35,
                                    ChestId = 215,
                                    TypeByte = 0x40,
                                    Value = Item.FixedDice
                                },
                            //Tzen, collapsing house (both floors)
                            new TreasureBox
                                {
                                    Area = "Tzen House",
                                    Address = 0x2d89c7,
                                    XPos = 123,
                                    YPos = 43,
                                    ChestId = 142,
                                    TypeByte = 0x40,
                                    Value = Item.HealRod
                                },
                            new TreasureBox
                                {
                                    Area = "Tzen House",
                                    Address = 0x2d89cc,
                                    XPos = 104,
                                    YPos = 43,
                                    ChestId = 143,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            new TreasureBox
                                {
                                    Area = "Tzen House",
                                    Address = 0x2d89d1,
                                    XPos = 102,
                                    YPos = 49,
                                    ChestId = 144,
                                    TypeByte = 0x20,
                                    Value = (Item)0x96
                                },
                            new TreasureBox
                                {
                                    Area = "Tzen House",
                                    Address = 0x2d89d6,
                                    XPos = 112,
                                    YPos = 49,
                                    ChestId = 145,
                                    TypeByte = 0x40,
                                    Value = Item.PearlRod
                                },
                            new TreasureBox
                                {
                                    Area = "Tzen House",
                                    Address = 0x2d89db,
                                    XPos = 103,
                                    YPos = 58,
                                    ChestId = 146,
                                    TypeByte = 0x40,
                                    Value = Item.HyperWrist
                                },
                            new TreasureBox
                                {
                                    Area = "Tzen House",
                                    Address = 0x2d89e0,
                                    XPos = 125,
                                    YPos = 12,
                                    ChestId = 147,
                                    TypeByte = 0x40,
                                    Value = Item.Magicite
                                },
                            new TreasureBox
                                {
                                    Area = "Tzen House",
                                    Address = 0x2d89e5,
                                    XPos = 111,
                                    YPos = 12,
                                    ChestId = 148,
                                    TypeByte = 0x20,
                                    Value = (Item)0x96
                                },
                            new TreasureBox
                                {
                                    Area = "Tzen House",
                                    Address = 0x2d89ea,
                                    XPos = 118,
                                    YPos = 26,
                                    ChestId = 149,
                                    TypeByte = 0x40,
                                    Value = Item.Drainer
                                },
                            //Phoenix Cave, downstairs
                            new TreasureBox
                                {
                                    Area = "Phoenix Cave",
                                    Address = 0x2d89ef,
                                    XPos = 13,
                                    YPos = 20,
                                    ChestId = 171,
                                    TypeByte = 0x40,
                                    Value = Item.Ribbon
                                },
                            new TreasureBox
                                {
                                    Area = "Phoenix Cave",
                                    Address = 0x2d89f4,
                                    XPos = 18,
                                    YPos = 13,
                                    ChestId = 176,
                                    TypeByte = 0x08,
                                },
                            new TreasureBox
                                {
                                    Area = "Phoenix Cave",
                                    Address = 0x2d89f9,
                                    XPos = 51,
                                    YPos = 37,
                                    ChestId = 174,
                                    TypeByte = 0x08,
                                },
                            new TreasureBox
                                {
                                    Area = "Phoenix Cave",
                                    Address = 0x2d89fe,
                                    XPos = 32,
                                    YPos = 42,
                                    ChestId = 175,
                                    TypeByte = 0x08,
                                },
                            new TreasureBox
                                {
                                    Area = "Phoenix Cave",
                                    Address = 0x2d8a03,
                                    XPos = 34,
                                    YPos = 20,
                                    ChestId = 190,
                                    TypeByte = 0x08,
                                },
                            //Phoenix Cave, upstairs
                            new TreasureBox
                                {
                                    Area = "Phoenix Cave",
                                    Address = 0x2d8a08,
                                    XPos = 24,
                                    YPos = 43,
                                    ChestId = 172,
                                    TypeByte = 0x40,
                                    Value = Item.WingEdge
                                },
                            new TreasureBox
                                {
                                    Area = "Phoenix Cave",
                                    Address = 0x2d8a0d,
                                    XPos = 50,
                                    YPos = 36,
                                    ChestId = 173,
                                    TypeByte = 0x08,
                                },
                            new TreasureBox
                                {
                                    Area = "Phoenix Cave",
                                    Address = 0x2d8a12,
                                    XPos = 20,
                                    YPos = 40,
                                    ChestId = 177,
                                    TypeByte = 0x40,
                                    Value = Item.DragonHorn
                                },
                            new TreasureBox
                                {
                                    Area = "Phoenix Cave",
                                    Address = 0x2d8a17,
                                    XPos = 55,
                                    YPos = 53,
                                    ChestId = 195,
                                    TypeByte = 0x40,
                                    Value = Item.WarpStone
                                },
                            //Cyan's Dream, Phantom Train second dining car
                            new TreasureBox
                                {
                                    Area = "Cyan's Dream",
                                    Address = 0x2d8a1c,
                                    XPos = 24,
                                    YPos = 9,
                                    ChestId = 186,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "Cyan's Dream",
                                    Address = 0x2d8a21,
                                    XPos = 16,
                                    YPos = 8,
                                    ChestId = 187,
                                    TypeByte = 0x40,
                                    Value = Item.IceShld
                                },
                            //Albrook, outdoors (WoB, including shadowed by Floating Island)
                            new TreasureBox
                                {
                                    Area = "Albrook (WoB)",
                                    Address = 0x2d8a26,
                                    XPos = 56,
                                    YPos = 13,
                                    ChestId = 98,
                                    TypeByte = 0x40,
                                    Value = Item.Potion
                                },
                            //Albrook, outdoors (WoR)
                            new TreasureBox
                                {
                                    Area = "Albrook (WoR)",
                                    Address = 0x2d8a2b,
                                    XPos = 56,
                                    YPos = 13,
                                    ChestId = 98,
                                    TypeByte = 0x40,
                                    Value = Item.Potion
                                },
                            //Albrook, weapon shop (always)
                            new TreasureBox
                                {
                                    Area = "Albrook",
                                    Address = 0x2d8a30,
                                    XPos = 11,
                                    YPos = 49,
                                    ChestId = 100,
                                    TypeByte = 0x40,
                                    Value = Item.Tincture
                                },
                            //Albrook, armor shop (always)
                            new TreasureBox
                                {
                                    Area = "Albrook",
                                    Address = 0x2d8a35,
                                    XPos = 94,
                                    YPos = 20,
                                    ChestId = 101,
                                    TypeByte = 0x08,
                                },
                            new TreasureBox
                                {
                                    Area = "Albrook",
                                    Address = 0x2d8a3a,
                                    XPos = 95,
                                    YPos = 20,
                                    ChestId = 102,
                                    TypeByte = 0x08,
                                },
                            //Albrook, cafe / relic shop (always)
                            new TreasureBox
                                {
                                    Area = "Albrook",
                                    Address = 0x2d8a3f,
                                    XPos = 35,
                                    YPos = 7,
                                    ChestId = 103,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            //Albrook, docks / Magitek ship at sea (always)
                            new TreasureBox
                                {
                                    Area = "Albrook",
                                    Address = 0x2d8a44,
                                    XPos = 23,
                                    YPos = 2,
                                    ChestId = 99,
                                    TypeByte = 0x40,
                                    Value = Item.WarpStone
                                },
                            //Kefka's Tower, exterior
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8a49,
                                    XPos = 23,
                                    YPos = 14,
                                    ChestId = 214,
                                    TypeByte = 0x40,
                                    Value = Item.Coronet
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8a4e,
                                    XPos = 11,
                                    YPos = 39,
                                    ChestId = 217,
                                    TypeByte = 0x40,
                                    Value = Item.ForceShld
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8a53,
                                    XPos = 5,
                                    YPos = 51,
                                    ChestId = 218,
                                    TypeByte = 0x40,
                                    Value = Item.ForceArmor
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8a58,
                                    XPos = 37,
                                    YPos = 45,
                                    ChestId = 219,
                                    TypeByte = 0x40,
                                    Value = Item.RainbowBrsh
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8a5d,
                                    XPos = 23,
                                    YPos = 41,
                                    ChestId = 220,
                                    TypeByte = 0x40,
                                    Value = Item.TackStar
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8a62,
                                    XPos = 47,
                                    YPos = 40,
                                    ChestId = 221,
                                    TypeByte = 0x40,
                                    Value = Item.RedCap
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8a67,
                                    XPos = 48,
                                    YPos = 48,
                                    ChestId = 222,
                                    TypeByte = 0x40,
                                    Value = Item.Megalixir
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8a6c,
                                    XPos = 29,
                                    YPos = 29,
                                    ChestId = 242,
                                    TypeByte = 0x40,
                                    Value = Item.Ribbon
                                },
                            //Kefka's Tower, second group first cave
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8a71,
                                    XPos = 5,
                                    YPos = 39,
                                    ChestId = 223,
                                    TypeByte = 0x40,
                                    Value = Item.Minerva
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8a76,
                                    XPos = 58,
                                    YPos = 27,
                                    ChestId = 224,
                                    TypeByte = 0x40,
                                    Value = Item.TackStar
                                },
                            //Thamasa, outdoors (WoB pre-Espers / Shadow's last dream / "That evening")
                            new TreasureBox
                                {
                                    Area = "Thamasa (WoB)",
                                    Address = 0x2d8a7b,
                                    XPos = 13,
                                    YPos = 8,
                                    ChestId = 246,
                                    TypeByte = 0x40,
                                    Value = Item.EchoScreen
                                },
                            new TreasureBox
                                {
                                    Area = "Thamasa (WoB)",
                                    Address = 0x2d8a80,
                                    XPos = 35,
                                    YPos = 12,
                                    ChestId = 247,
                                    TypeByte = 0x40,
                                    Value = Item.GreenCherry
                                },
                            new TreasureBox
                                {
                                    Area = "Thamasa (WoB)",
                                    Address = 0x2d8a85,
                                    XPos = 43,
                                    YPos = 30,
                                    ChestId = 248,
                                    TypeByte = 0x40,
                                    Value = Item.Soft
                                },
                            new TreasureBox
                                {
                                    Area = "Thamasa (WoB)",
                                    Address = 0x2d8a8a,
                                    XPos = 31,
                                    YPos = 37,
                                    ChestId = 249,
                                    TypeByte = 0x40,
                                    Value = Item.Eyedrop
                                },
                            new TreasureBox
                                {
                                    Area = "Thamasa (WoB)",
                                    Address = 0x2d8a8f,
                                    XPos = 14,
                                    YPos = 18,
                                    ChestId = 250,
                                    TypeByte = 0x40,
                                    Value = Item.FenixDown
                                },
                            //Thamasa, both floors of Strago's house (always)
                            new TreasureBox
                                {
                                    Area = "Thamasa",
                                    Address = 0x2d8a94,
                                    XPos = 56,
                                    YPos = 16,
                                    ChestId = 227,
                                    TypeByte = 0x40,
                                    Value = Item.MementoRing
                                },
                            //Thamasa, inside the burning house
                            new TreasureBox
                                {
                                    Area = "Thamasa House",
                                    Address = 0x2d8a99,
                                    XPos = 4,
                                    YPos = 52,
                                    ChestId = 104,
                                    TypeByte = 0x40,
                                    Value = Item.FireRod
                                },
                            new TreasureBox
                                {
                                    Area = "Thamasa House",
                                    Address = 0x2d8a9e,
                                    XPos = 45,
                                    YPos = 7,
                                    ChestId = 105,
                                    TypeByte = 0x40,
                                    Value = Item.IceRod
                                },
                            //Cave in the Veldt
                            new TreasureBox
                                {
                                    Area = "Cave in the Veldt",
                                    Address = 0x2d8aa3,
                                    XPos = 18,
                                    YPos = 20,
                                    ChestId = 191,
                                    TypeByte = 0x40,
                                    Value = Item.RageRing
                                },
                            new TreasureBox
                                {
                                    Area = "Cave in the Veldt",
                                    Address = 0x2d8aa8,
                                    XPos = 6,
                                    YPos = 8,
                                    ChestId = 192,
                                    TypeByte = 0x20,
                                    Value = (Item)0x99
                                },
                            new TreasureBox
                                {
                                    Area = "Cave in the Veldt",
                                    Address = 0x2d8aad,
                                    XPos = 42,
                                    YPos = 26,
                                    ChestId = 193,
                                    TypeByte = 0x40,
                                    Value = Item.Striker
                                },
                            //Fanatics' Tower, room on 7th floor
                            new TreasureBox
                                {
                                    Area = "Fanatics Tower",
                                    Address = 0x2d8ab2,
                                    XPos = 7,
                                    YPos = 6,
                                    ChestId = 180,
                                    TypeByte = 0x40,
                                    Value = Item.SafetyBit
                                },
                            //Fanatics' Tower, room at top of tower
                            new TreasureBox
                                {
                                    Area = "Fanatics Tower",
                                    Address = 0x2d8ab7,
                                    XPos = 7,
                                    YPos = 7,
                                    ChestId = 184,
                                    TypeByte = 0x40,
                                    Value = Item.GemBox
                                },
                            //Fanatics' Tower, room on 16th floor
                            new TreasureBox
                                {
                                    Area = "Fanatics Tower",
                                    Address = 0x2d8abc,
                                    XPos = 7,
                                    YPos = 6,
                                    ChestId = 181,
                                    TypeByte = 0x40,
                                    Value = Item.GenjiShld
                                },
                            //Fanatics' Tower, room on 25th floor
                            new TreasureBox
                                {
                                    Area = "Fanatics Tower",
                                    Address = 0x2d8ac1,
                                    XPos = 7,
                                    YPos = 6,
                                    ChestId = 182,
                                    TypeByte = 0x40,
                                    Value = Item.Stunner
                                },
                            //Fanatics' Tower, room on 34th floor
                            new TreasureBox
                                {
                                    Area = "Fanatics Tower",
                                    Address = 0x2d8ac6,
                                    XPos = 7,
                                    YPos = 6,
                                    ChestId = 183,
                                    TypeByte = 0x40,
                                    Value = Item.ForceArmor
                                },
                            //Fanatics' Tower, hidden room on 6th floor
                            new TreasureBox
                                {
                                    Area = "Fanatics Tower",
                                    Address = 0x2d8acb,
                                    XPos = 7,
                                    YPos = 6,
                                    ChestId = 185,
                                    TypeByte = 0x40,
                                    Value = Item.AirAnchor
                                },
                            //Espers' Gathering Place, cliffside without overlook
                            new TreasureBox
                                {
                                    Area = "Espers' Gathering Place",
                                    Address = 0x2d8ad0,
                                    XPos = 41,
                                    YPos = 34,
                                    ChestId = 106,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            //Espers' Gathering Place, cliffside overlooking waterfall
                            new TreasureBox
                                {
                                    Area = "Espers' Gathering Place",
                                    Address = 0x2d8ad5,
                                    XPos = 14,
                                    YPos = 9,
                                    ChestId = 107,
                                    TypeByte = 0x40,
                                    Value = Item.TabbySuit
                                },
                            //Espers' Gathering Place, cliffside overlooking mountains
                            new TreasureBox
                                {
                                    Area = "Espers' Gathering Place",
                                    Address = 0x2d8ada,
                                    XPos = 18,
                                    YPos = 9,
                                    ChestId = 108,
                                    TypeByte = 0x40,
                                    Value = Item.ChocoboSuit
                                },
                            //Espers' Gathering Place, most caves
                            new TreasureBox
                                {
                                    Area = "Espers' Gathering Place",
                                    Address = 0x2d8adf,
                                    XPos = 46,
                                    YPos = 27,
                                    ChestId = 109,
                                    TypeByte = 0x40,
                                    Value = Item.HealRod
                                },
                            //Imperial Base near Sealed Gate, indoors
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8ae4,
                                    XPos = 50,
                                    YPos = 42,
                                    ChestId = 110,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8ae9,
                                    XPos = 51,
                                    YPos = 42,
                                    ChestId = 111,
                                    TypeByte = 0x40,
                                    Value = Item.CherubDown
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8aee,
                                    XPos = 49,
                                    YPos = 44,
                                    ChestId = 112,
                                    TypeByte = 0x80,
                                    Value = (Item)80
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8af3,
                                    XPos = 51,
                                    YPos = 44,
                                    ChestId = 113,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8af8,
                                    XPos = 54,
                                    YPos = 44,
                                    ChestId = 114,
                                    TypeByte = 0x40,
                                    Value = Item.WallRing
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8afd,
                                    XPos = 56,
                                    YPos = 44,
                                    ChestId = 115,
                                    TypeByte = 0x80,
                                    Value = (Item)130
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8b02,
                                    XPos = 52,
                                    YPos = 45,
                                    ChestId = 116,
                                    TypeByte = 0x40,
                                    Value = Item.RunningShoes
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8b07,
                                    XPos = 51,
                                    YPos = 46,
                                    ChestId = 117,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8b0c,
                                    XPos = 53,
                                    YPos = 46,
                                    ChestId = 118,
                                    TypeByte = 0x80,
                                    Value = (Item)200
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8b11,
                                    XPos = 49,
                                    YPos = 47,
                                    ChestId = 119,
                                    TypeByte = 0x40,
                                    Value = Item.CureRing
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8b16,
                                    XPos = 50,
                                    YPos = 47,
                                    ChestId = 120,
                                    TypeByte = 0x40,
                                    Value = Item.BackGuard
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8b1b,
                                    XPos = 55,
                                    YPos = 42,
                                    ChestId = 121,
                                    TypeByte = 0x40,
                                    Value = Item.FlameSabre
                                },
                            new TreasureBox
                                {
                                    Area = "Imperial Base",
                                    Address = 0x2d8b20,
                                    XPos = 56,
                                    YPos = 49,
                                    ChestId = 1,
                                    TypeByte = 0x41,
                                    Value = Item.Elixir
                                },
                            //Cave to the Sealed Gate, first cave
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b25,
                                    XPos = 36,
                                    YPos = 39,
                                    ChestId = 122,
                                    TypeByte = 0x40,
                                    Value = Item.Assassin
                                },
                            //Cave to the Sealed Gate, second cave
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b2a,
                                    XPos = 48,
                                    YPos = 56,
                                    ChestId = 123,
                                    TypeByte = 0x40,
                                    Value = Item.Tempest
                                },
                            //Cave to the Sealed Gate, big lava cave / treasure cave / cave before gate
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b2f,
                                    XPos = 29,
                                    YPos = 23,
                                    ChestId = 124,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b34,
                                    XPos = 47,
                                    YPos = 11,
                                    ChestId = 125,
                                    TypeByte = 0x40,
                                    Value = Item.GenjiGlove
                                },
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b39,
                                    XPos = 88,
                                    YPos = 23,
                                    ChestId = 126,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b3e,
                                    XPos = 113,
                                    YPos = 6,
                                    ChestId = 127,
                                    TypeByte = 0x40,
                                    Value = Item.Magicite
                                },
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b43,
                                    XPos = 71,
                                    YPos = 30,
                                    ChestId = 128,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b48,
                                    XPos = 88,
                                    YPos = 53,
                                    ChestId = 129,
                                    TypeByte = 0x40,
                                    Value = Item.Magicite
                                },
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b4d,
                                    XPos = 89,
                                    YPos = 51,
                                    ChestId = 130,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b52,
                                    XPos = 91,
                                    YPos = 49,
                                    ChestId = 131,
                                    TypeByte = 0x40,
                                    Value = Item.Magicite
                                },
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b57,
                                    XPos = 92,
                                    YPos = 49,
                                    ChestId = 132,
                                    TypeByte = 0x40,
                                    Value = Item.AtmaWeapon
                                },
                            //Cave to the Sealed Gate, lava cave with moving bridges
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b5c,
                                    XPos = 3,
                                    YPos = 8,
                                    ChestId = 133,
                                    TypeByte = 0x40,
                                    Value = Item.CoinToss
                                },
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b61,
                                    XPos = 14,
                                    YPos = 4,
                                    ChestId = 134,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            //Cave to the Sealed Gate, save point cave
                            new TreasureBox
                                {
                                    Area = "Cave to the Sealed Gate",
                                    Address = 0x2d8b66,
                                    XPos = 77,
                                    YPos = 52,
                                    ChestId = 68,
                                    TypeByte = 0x40,
                                    Value = Item.Tent
                                },
                            //Floating Island, outdoors, dark background (collapsing)
                            new TreasureBox
                                {
                                    Area = "Floating Island",
                                    Address = 0x2d8b6b,
                                    XPos = 103,
                                    YPos = 12,
                                    ChestId = 137,
                                    TypeByte = 0x40,
                                    Value = Item.Elixir
                                },
                            //Floating Island, outdoors, with background clouds (normal)
                            new TreasureBox
                                {
                                    Area = "Floating Island",
                                    Address = 0x2d8b70,
                                    XPos = 35,
                                    YPos = 8,
                                    ChestId = 135,
                                    TypeByte = 0x40,
                                    Value = Item.Murasame
                                },
                            new TreasureBox
                                {
                                    Area = "Floating Island",
                                    Address = 0x2d8b75,
                                    XPos = 98,
                                    YPos = 31,
                                    ChestId = 136,
                                    TypeByte = 0x40,
                                    Value = Item.Beret
                                },
                            new TreasureBox
                                {
                                    Area = "Floating Island",
                                    Address = 0x2d8b7a,
                                    XPos = 48,
                                    YPos = 15,
                                    ChestId = 95,
                                    TypeByte = 0x20,
                                    Value = (Item)0x25
                                },
                            //Cave to Ancient Castle, all caves except save point
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8b7f,
                                    XPos = 55,
                                    YPos = 21,
                                    ChestId = 196,
                                    TypeByte = 0x40,
                                    Value = Item.Ether
                                },
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8b84,
                                    XPos = 45,
                                    YPos = 21,
                                    ChestId = 197,
                                    TypeByte = 0x40,
                                    Value = Item.WingEdge
                                },
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8b89,
                                    XPos = 58,
                                    YPos = 43,
                                    ChestId = 198,
                                    TypeByte = 0x20,
                                    Value = (Item)0x71
                                },
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8b8e,
                                    XPos = 49,
                                    YPos = 46,
                                    ChestId = 199,
                                    TypeByte = 0x40,
                                    Value = Item.DoomDarts
                                },
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8b93,
                                    XPos = 18,
                                    YPos = 28,
                                    ChestId = 200,
                                    TypeByte = 0x40,
                                    Value = Item.Magicite
                                },
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8b98,
                                    XPos = 8,
                                    YPos = 20,
                                    ChestId = 201,
                                    TypeByte = 0x40,
                                    Value = Item.XPotion
                                },
                            //Ancient Castle, all rooms except library and basement
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8b9d,
                                    XPos = 53,
                                    YPos = 23,
                                    ChestId = 202,
                                    TypeByte = 0x40,
                                    Value = Item.BlizzardOrb
                                },
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8ba2,
                                    XPos = 55,
                                    YPos = 23,
                                    ChestId = 203,
                                    TypeByte = 0x40,
                                    Value = Item.GoldHairpin
                                },
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8ba7,
                                    XPos = 10,
                                    YPos = 17,
                                    ChestId = 205,
                                    TypeByte = 0x20,
                                    Value = (Item)0x5f
                                },
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8bac,
                                    XPos = 59,
                                    YPos = 6,
                                    ChestId = 206,
                                    TypeByte = 0x40,
                                    Value = Item.Punisher
                                },
                            //Ancient Castle, library / basement
                            new TreasureBox
                                {
                                    Area = "Ancient Castle",
                                    Address = 0x2d8bb1,
                                    XPos = 34,
                                    YPos = 43,
                                    ChestId = 204,
                                    TypeByte = 0x40,
                                    Value = Item.XEther
                                },
                            //Kefka's Tower, third group factory areas (inc. ending - Relm's scene)
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8bb6,
                                    XPos = 10,
                                    YPos = 17,
                                    ChestId = 226,
                                    TypeByte = 0x40,
                                    Value = Item.HeroRing
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8bbb,
                                    XPos = 7,
                                    YPos = 42,
                                    ChestId = 241,
                                    TypeByte = 0x40,
                                    Value = Item.AegisShld
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8bc0,
                                    XPos = 38,
                                    YPos = 12,
                                    ChestId = 225,
                                    TypeByte = 0x40,
                                    Value = Item.NutkinSuit
                                },
                            new TreasureBox
                                {
                                    Area = "Kefka's Tower",
                                    Address = 0x2d8bc5,
                                    XPos = 49,
                                    YPos = 12,
                                    ChestId = 235,
                                    TypeByte = 0x40,
                                    Value = Item.Gauntlet
                                },
                       };
        }

    }
}
